0 REM * * * * * * * ** * * * * * * * 1 REM * * 2 REM * SPRITE PRIORITIES * 3 REM * A BASIC DEMO * 4 REM * BY BONES * 5 REM * * 6 REM * * * * * * * ** * * * * * * * 7 : 8 : 9 : 10 GOSUB66:REM * INITIALISE 11 : 12 REM ***** PROGRAM MAINLOOP ***** 13 : 14 GOSUB55:REM * KEYPRESS 15 JV=PEEK(JS)AND15:IFJV=15THEN14 16 GOSUB21:REM EXECUTE JOY COMMANDS 17 GOTO14 18 : 19 REM *** JOYSTICK UP *** 20 : 21 IFJV<>14THEN32 22 DS(K)=DS(K)-4:IFDS(K)<50THENDS(K)=50 23 POKEV+1+(N*2),DS(K) 24 IFPEEK(V+3+(N*2))<=PEEK(V+1+(N*2))THEN28 25 SYS52832:REM * PRIORITISE SPRITES 26 N=N+1:IFN>7THENN=7 27 IFN<>0THENGOSUB64 28 RETURN 29 : 30 REM *** JOYSTICK DOWN *** 31 : 32 IFJV<>13THEN43 33 DS(K)=DS(K)+4:IFDS(K)>208THENDS(K)=208 34 POKEV+1+(N*2),DS(K) 35 IFPEEK(V+1+(N*2))<=PEEK(V-1+(N*2))THEN39 36 SYS52832:REM * PRIORITISE SPRITES 37 IFN<>0THEN GOSUB64 38 N=N-1:IFN<0THENN=0 39 RETURN 40 : 41 REM *** JOYSTICK LEFT/RIGHT *** 42 : 43 Y=PEEK(V+(N*2)) 44 IFJV<>11THEN47 45 Y=Y-6:IFY<24THENY=24 46 GOTO49 47 IFJV<>7THEN23 48 Y=Y+6:IFY>255THENY=255 49 POKEV+(N*2),Y 50 RETURN 51 : 52 REM *** SELECT-A-SPRITE *** 53 REM * KEYS 1 TO 8 * 54 : 55 GETK$:X=VAL(K$):IFX<1ORX>8THEN60 56 K=X-1 57 FORC=0TO7 58 IFF(C)=KTHENN=C 59 NEXT 60 RETURN 61 : 62 REM *** UPDATE F(LAG) ARRAY *** 63 : 64 Z=F(N):F(N)=F(N-1):F(N-1)=Z:RETURN 65 : 66 REM *** INITIALISE *** 67 : 68 POKE53280,0:POKE53281,0:PRINT"[147]" 69 V=53248:JS=56320:DP=2040:PO=192:DIMDS(7),F(7):N=0:JV=0:K=0: 70 FORC=0TO64:POKE12288+C,255:NEXT:REM * FILL SPRITE IMAGES WITH BLANKS 71 FORC=0TO7:POKEDP+C,PO:REM * DATA POINTERS 72 REM 73 REM 74 REM 75 POKEV+39+C,C+1:REM * COLOUR SPRITES 76 NEXTC 77 X=50:FORC=0TO14STEP2:POKEV+C,X:X=X+10:NEXT:REM * POKE X COORDS 78 Y=200:FORC=1TO15STEP2:POKEV+C,Y:Y=Y-10:NEXT:REM * POKE Y COORDS 79 FORC=0TO7:DS(C)=PEEK(V+1+(C*2)):F(C)=C:NEXT:REM * SET UP ARRAYS 80 POKEV+21,255:REM * ENABLE SPRITES 81 RETURN